package com.zen.lon.open.proxy;

import java.lang.reflect.Method;

/**
 * 方法调用接口，实现相关代理核心业务逻辑
 * 基于注解@ProxyObj 进行扩展复用
 *
 * @author ZonLen since on 2021/7/12 下午1:36
 */
public interface ProxyAgentMethodInvoker {

  /**
   * @param proxyClass 代理接口的class
   * @param method 代理函数方法
   * @param args 代理接口方法的参数，顺序和接口方法顺序一致
   * @return Object 对应接口方法返回值 如果为void则返回null
   */
  Object invoke(Class<?> proxyClass, Method method, Object[] args);


}
